export default {
  // 为当前模块开启命名空间
  namespaced: true,

  // 模块的 state 数据
  state: () => ({
    token: '',
    userinfo: {},
  }),

  // 模块的 mutations 方法     两个方法两种情况
  mutations: {
    //直接从缓存中拿到保存的token和userinfo
    setToken(state) {
      // get 直接从缓存拿token
      uni.getStorage({
        key: 'token',
        success: function (res) {
          state.token = res.data;

          // console.log("token = " + res.data);
        },
        fail(e) {
          state.token = "";
          console.log("token  is null ");
        }
      })

      // 获取用户信息
      uni.getStorage({ //没登录就获取不了,登录之后,有缓存了,下次再打开小程序就直接拿到缓存stroage
        key: 'userinfo',
        success: function (res) {
          state.userinfo = res.data;

          // console.log("userinfo = " + res.data);
        },
        fail(e) {
          state.userinfo = "";
          console.log("userinfo  is null ");
        }
      })
    },

    //替换   第一次登陆获取到数据，保存到缓存里面
    refreshToken(state, json) {
      // set  有token参数     登录成功调用,传的token     缓存中没有数据,就登录,然后把token保存到 缓存
      uni.setStorage({
        key: 'token',
        data: json.tk,
        success: function () {
          state.token = json.tk; //token
        },
        fail() {
          console.log("refresh token fail ");
        }
      })
      //var userJson = JSON.parse(user)
      console.log(json.user);
      // 保存用户信息
      uni.setStorage({
        key: 'userinfo',
        data: json.user,
        success: function () {
          state.userinfo = json.user;
          console.log("refresh userinfo success");
        },
        fail() {
          console.log("refresh userinfo fail ");
        }
      })
    },


    //注销登录方法 移除storang
    removeStorage(state) {
      uni.showModal({
        title: '确定退出？',
        content: '退出登陆后将无法查看此板块，重新登录即可查看',
        success: function (res) {
          if (res.confirm) {
            // 清掉userinfo
            uni.removeStorage({
              key: 'userinfo',
              // data: json.user,
              success: function () {
                state.userinfo = {};
                state.token = ""
              }
            })
            // 清掉token
            uni.removeStorage({
              key: 'token',
              success: function () {
                state.token = ''; //token
              },

            })

            uni.showToast({
              title: "退出登陆成功",
              duration: 1000,
              icon: "success"
            })
            // setTimeout(function () {
            // 	uni.hideLoading();
            // }, 2000);
            //
          } else if (res.cancel) {
            // uni.showToast({
            // 	title: "您取消了退出登陆",
            // 	duration: 3000,
            // 	icon: "exception"
            // })
          }
        }
      });
    },
  },
  // 模块的 getters 属性
  getters: {
    getToken(state) {
      return state.token;
    }
  }
}
